package com.thermal.thermal_inspection.service;

import cn.dev33.satoken.stp.SaTokenInfo;
import com.thermal.thermal_inspection.entity.RealName;
import com.thermal.thermal_inspection.entity.User;
import com.thermal.thermal_inspection.vo.ClassWorkerVO;
import com.thermal.thermal_inspection.vo.LoginRespVO;
import com.thermal.thermal_inspection.vo.UserInfoVO;
import com.thermal.thermal_inspection.vo.GetUserRespVO;

import java.util.List;

public interface AccountService {
    /**
     * 判断用户是否存在
     */
    boolean existUser(int userId);

    /**
     * 登录
     */
    LoginRespVO login(String username, String password);

    /**
     * 注册
     */
    int register(String username, String password, String realName, String email, String phone, int role);

    /**
     * 删除工人
     */
    int deleteUser(int userId);

    /**
     * 查找所有工人
     */
    List<GetUserRespVO> getUsers();

    /**
     * 修改信息
     */
    int fixAccount(int userId, String username, String realName, String email, String phone, int classId, int role);

    /**
     * 查看个人信息
     */
    UserInfoVO getUserInfo(int userId);

    /**
     * 先验证身份，是工人还是管理员，管理员则无需验证身份，工人需要判断密码是否相同
     */
    int isOldPassword(int requestUserId, int userId, String oldPassword);

    /**
     * 修改密码
     */
    int fixPassword(int userId, String newPassword);

    /**
     * 搜索指定用户
     */
    List<RealName> getSpecifiedUser(Integer userId, String realName);

    /**
     * 查询班组下所有用户
     */
    List<ClassWorkerVO> selectByClass();

    /**
     * 按照工人真实姓名查询工人
     */
    List<RealName> getUserByRealName(String realName);

}
